From: Derk-Jan Hartman Date: Sun, 16 May 2010 16:30:04 +0000 (+0000) Subject: Don't setup mwsuggest when browsers cannot getElementById forms X-Git-Tag: 1.31.0-rc.0~36826 X-Git-Url: http://git.cyclocoop.org/%22.%24info%5B?a=commitdiff_plain;h=44956916e0f0eb203fa0af367953eca2eda4e795;p=lhc%2Fweb%2Fwiklou.git Don't setup mwsuggest when browsers cannot getElementById forms This happens with Opera 8 for instance. Fixes bug 19586 --- diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 19a5119807..a5a971bc20 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -165,6 +165,7 @@ in a negative namespace (which is invalid). variable {{REVISIONMONTH1}} when unpadded version is needed. * Special:Userrights didn't recognize user as changing his/her own rights if user did not capitalize first letter of username. * (bug 23507) Add styles for printing wikitables +* (bug 19586) Avoid JS errors in mwsuggest when using old browsers such as Opera 8. === API changes in 1.17 === * (bug 22738) Allow filtering by action type on query=logevent diff --git a/skins/common/mwsuggest.js b/skins/common/mwsuggest.js index 8f638c4776..fb956316c1 100644 --- a/skins/common/mwsuggest.js +++ b/skins/common/mwsuggest.js @@ -112,6 +112,11 @@ function os_MWSuggestInit() { /** Init Result objects and event handlers */ function os_initHandlers( name, formname, element ) { var r = new os_Results( name, formname ); + var formElement = document.getElementById( formname ); + if( !formElement ) { + // Older browsers (Opera 8) cannot get form elements + return; + } // event handler os_hookEvent( element, 'keyup', function( event ) { os_eventKeyup( event ); } ); os_hookEvent( element, 'keydown', function( event ) { os_eventKeydown( event ); } ); @@ -126,7 +131,7 @@ function os_initHandlers( name, formname, element ) { element.setAttribute( 'autocomplete', 'off' ); } // stopping handler - os_hookEvent( document.getElementById( formname ), 'submit', function( event ) { return os_eventOnsubmit( event ); } ); + os_hookEvent( formElement, 'submit', function( event ) { return os_eventOnsubmit( event ); } ); os_map[name] = r; // toggle link if( document.getElementById( r.toggle ) == null ) {